var basicAuth = require('basic-auth-connect');
var User = require('../lib/user');
var Entry = require('../lib/entry');

exports.auth = basicAuth(User.authenticate);

exports.user = function(req, res, next) {
  User.get(req.params.id, function(err, user) {
    if (err) return next(err);
    if (!user.id) return res.send(404);
    res.json(user);
  });
};

/**
 * 实现内容协商
 */
exports.entries = function(req, res, next) {
  var page = req.page;
  Entry.getRange(page.from, page.to, function(err, entries) { // 获取消息数据
    if (err) return next(err);

    //res.json(entries);
    res.format({ // 基于Accept头的值返回不同的响应
      //'application/json': function() {
      json: function(){ // 使用扩展名
        res.send(entries); // JSON响应
      },
      //'application/xml': function(){
      xml: function(){ // 使用扩展名
        res.render('entries/xml', { entries: entries }); // 用EJS模板生成XML
        /*
        res.write('<entries>\n'); // XML响应
        entries.forEach(function(entry) {
          res.write('  <entry>\n');
          res.write('    <title>' + entry.title + '</title>\n');
          res.write('    <body>' + entry.body + '</body>\n');
          res.write('    <username>' + entry.username + '</username>\n');
          res.write('  </entry>\n');
        });
        res.end('</entries>');
        */
      }
    });
  });
};
